package com.example.common.config;

import java.util.ArrayList;
import java.util.List;

/**
 * 这里存放相关问题
 */
public class QuestionConfig {

    private static List<String> questions;

    // 初始化题目
    static {
        questions = new ArrayList<String>();

        // 面向对象相关的
        questions.add("简述类与对象的关系 -- 2分");
        questions.add("简述你对面向对象三大特征的理解 -- 3至5分");
        questions.add("简述 什么是方法的重载、重写、递归 -- 3分");
        questions.add("简述 构造器的特点，以及有参构造和无参构造的区别 -- 3 分");
        questions.add("简述 你对接口的理解 -- 2 分");
        questions.add("简述 你对抽象类的理解 -- 2分");

        // IO 流相关
        questions.add("输出流是从哪里到哪里？ --2 分");
        questions.add("输入流是从哪里到哪里？ --2 分");
        questions.add("字节输入流的顶层抽象父类是谁？ -- 1分");
        questions.add("字节输出流的顶层抽象父类是谁？ -- 1分");
        questions.add("字符输入流的顶层抽象父类是谁？ -- 1分");
        questions.add("简述 字节流、字符流、包装流 三者的异同点 --3分");

        // 多线程相关
        questions.add("简述 程序 和 进程之间的关系 -- 1 分");
        questions.add("简述 单线程 和 多线程的区别 -- 1 分");
        questions.add("简述 并行 和 并发的区别 -- 1 分");
        questions.add("简述 创建多线程的两种常用方式，以及区别和使用步骤 -- 3 分");
        questions.add("简述 start 方法 和 run 方法 两者的作用和区别 -- 3分");
        questions.add("简述线程的生命周期 -- 3分");
        questions.add("简述使用 sync 保证线程中的数据一致性时 锁方法 和锁代码块 分别在设么时候使用 以及注意事项 -- 3至4分 ");

        // 网络相关
        questions.add("简述 TCP 协议 和 UDP 协议的区别  --- 2 分");
        questions.add("简述 IP地址 地址、域名、端口号 三者的基本概念 --- 3分");
        questions.add("简述 Socket 的基本概念和使用");
        questions.add("请阅读以下代码 并为每行添加注释 TCPFileUploadClient --- 1-5分");
        questions.add("简述 局域网 城域网 广域网 三者相关的概念 -- 3分");

        // 反射相关
        questions.add("请简述一下 反射的相关概念 --- 2分");
        questions.add("请简述一下 反射 获取 类字节码文件的三种方式 -- 2分");
        questions.add("请简述一下 反射的作用 -- 2-3 分");


        // javaWeb 阶段
        questions.add("xml  文件叫什么？ 一般的作用是什么？ 有什么特点？ 什么是xml的约束？ --3分");
        questions.add("什么是静态页面（静态资源） 什么是动态页面（资源）？ -- 3分");
        questions.add("什么是 web 应用程序？ --1分");
        questions.add("简述一下什么是 tomCat ? 以及 tomCat 的大致作用 -- 2分");
        questions.add("tomCat 里面 webApps 文件夹是干嘛的？ --1 分");
        questions.add("在一个 JavaWeb 项目里 WEB-INF 这个文件必须存在，那它的作用是什么？ --1分");
        questions.add("什么是 HTTP 协议，以及 HTTP 协议的作用 -- 1 分");
        questions.add("HTTP 协议 1.0 中的短连接  和 HTTP 1.1 中的长连接分别是指什么？ -- 2 分");
        questions.add("HTTP 请求中 什么是 报文 ？ 报文由哪些部分组成？ -- 2分");
        questions.add("HTTP 中的 GET 请求 和 POST 请求 是日常开发中使用的最多的请求 它们有何异同？ -- 2分");

        // servlet
        questions.add(" servlet 是什么意思？ --- 1 分");
        questions.add(" servlet 的作用是什么？ --- 1 分");
        questions.add(" servlet 生命周期流程是怎样的? -- 2 分");
        questions.add("servletConfig 和 servletContext 这两个类的区别是什么 --- 2分");
        questions.add("请简述一下 你对 HttpServletRequest 和 HttpServletResponse 这两个接口的理解 -- 2分");
        questions.add("请求转发 和 重定向 两者有何异同点?");


        questions.add("简述一下 MVC 三层架构 是什么意思");
        questions.add("简述一下 高内聚低耦合是什么意思");

        questions.add("简述一下，什么是 JDBC 以及 JDBC 的作用，和使用 JDBC 的步骤 --- 2--4分");
        questions.add("简述一下， JDBC 由哪两个核心部分组成 -- 2 分");
        questions.add("简述一下，数据库连接池的基础概念 --- 2 分");



    }

    public static List<String> getQuestions() {
        return questions;
    }
}
